/**
    React 高阶组件：利用JS中的闭包 【柯理化函数】 实现的组件代理
    我们可以在代理组件中，经过业务逻辑的处理，获取一些信息，最后基于属性等方案，传递给我们最终想要的渲染的组件
 */

import React from "react";

const Demo = function (props) {
  console.log(props);
  return <div className="demo">我是demo</div>;
};

// 高阶组件
const ProxyTest = function ProxyTest(Component) {
  return function HOC(props) {
    // 真实渲染的是Demo组件：把获取到的props要传递给Demo
    return <Component {...props} />; // 这一步其实已经将props的值传递给了Demo
  };
};

export default ProxyTest(Demo);

// 实现的逻辑，就是通过闭包的形式，可以将我们想要的逻辑，通过内部函数返回出去
